Шаг 15 - Образцы файлов макросценариев.

Ниже приведены примеры файлов макросценариев, содержащих макрокоманды SURFERа. Эти демонстрационные примеры показывают, как следует создавать макросценарии, а также некоторые возможности GS Scripterа. Приведенные образцы можно выполнить с помощью программы GS Scripter.

Образец 1 (Файл SAMPLE1.BAS )

В данном макросценарии для каждого метода построения сети выполняются следующие действия:

1. Строится сеть по заданному файлу данных.

2. Создается карта изолиний.

3 Построенная страница выводится на печать.


‘ Создать объект SURFERа
SET Surf = CreateObject("Surfer.App")
 ‘ Выполнить следующую группу операций для каждого метода 
 ‘ построения сети
FOR  Method = 0  TO  6
 ‘ Открыть новое окно Графика
Surf.FileNew()
 ‘ Построить сеть по файлу данных с помощью текущего метода
IF Surf.GridData("DEMOGRID.DAT", gridMethod=Method,
OutGrid="SAMPLE") = 0  THEN  END
 ‘ Построить карту изолиний по созданному сеточному файлу
IF Surf.MapContour("SAMPLE") = 0  THEN  END
 ‘ Для того, чтобы напечатать текущую страницу, снимите 
 ‘ символ комментария со следующей строки
'Surf.FilePrint()
NEXT

Образец 2 (Файл SAMPLE2.BAS )

Данный пример демонстрирует элементарный шаблон макросценария. В первой строке макросценария задается исходный файл данных. После этого строятся карта изолиний и график поверхности.

Рассмотренную процедуру можно использовать для любого файла данных; для этого достаточно соответствующим образом изменить значение аргумента InFile$.

 ‘ Задать входной файл данных и выходной сеточный файл
InFile$  = "DEMOGRID.DAT"
OutFile$ = "SAMPLE"
 ‘ Создать объект SURFERа
SET Surf = CreateObject("Surfer.App")
 ‘ Создать новое окно Графика
Surf.FileNew()
 ‘ Построить сеть по заданному файлу данных
IF Surf.GridData(InFile$, GridMethod=1, SearchRad1=4.53, 
SearchRad2=4.53, OutGrid=OutFile$) = 0  THEN END
 ‘ Построить закрашенную карту изолиний
IF  Surf.MapContour(OutFile$, Flags=1, 
ID="Contour #1") = 0  THEN  END
 ‘ Выделить карту изолиний
Surf.Select("Contour #1")
 ‘ Переместить и изменить размер выделенной карты
Surf.TransformSel(Left=1, Bottom=0, Width=7, Height=5)
 ‘ Построить график поверхности
IF  Surf.MapSurface(OutFile$, xLineColor="Blue", 
yLineColor="Blue", ID="Surface #1") = 0  THEN  END
 ‘ Выделить график поверхности
Surf.Deselect()
Surf.Select(ID="Surface #1")
 ‘ Переместить и изменить размер выделенного графика
Surf.TransformSel(Left=1, Bottom=6, Width=7, Height=5)

Образец 3 (Файл SAMPLE3.BAS)

Данный макросценарий создает несколько карт по одному файлу данных. Файл данных организован в столбцы, соответствующие значениям X, Y, Z1, Z2, и т.д. Карты изолиний строятся для каждого подмножества данных: X,Y,Z1; X,Y,Z2; и т.д.)

Первая строка файла данных содержит заголовки столбцов, которые используются в качестве заголовков соответствующих карт.

 ‘ Задать входной файл данных
File$ = "SAMPLE3"
 ‘ Создать объект SURFERа
SET Surf = CreateObject("Surfer.App")
 ‘ Загрузить файл данных в окно Рабочего листа
hWnd = Surf.FileOpen(File$+".DAT",1)
IF  hWnd = 0  THEN  END
 ‘ Создать новое окно Графика
Surf.FileNew()
 ‘ Отключить автоматическое перерисовывание, чтобы операции
 ‘ выполнялись быстрее
Surf.ViewAutoRedraw(0)
 ‘ Выполнить следующую группу операций для каждого 
 ‘ столбца Z ...
FOR  iMap=0  TO  5
 ‘ Сформировать заголовок карты путем конкатенации заголовков
 ‘ столбцов, находящихся в первой строке Рабочего листа
Title$ = Surf.GetWksCell(hWnd,0,0) +    \
              Surf.GetWksCell(hWnd,0,1) +    \
              Surf.GetWksCell(hWnd,0,iMap+2)
 ‘ Построить сеть по текущим X,Y,Z данны
IF Surf.GridData(File$+".DAT", xCol=0, yCol=1,
 zCol=iMap+2) = 0  THEN  END
 ‘ Создать карту изолиний
IF  Surf.MapContour(File$, ID=Title$) = 0  THEN  END
 ‘ Выделить текущую созданную карту
Surf.Deselect()
Surf.Select(Title$)
 ‘ Определить положение карты на странице
Width  = 3
Height = 3
Left   = 0.5 + int(iMap/3) * (Width+1)
Bottom = 0.5 + (iMap mod 3) * (Height+.5)
 ‘ Переместить карту в заданное место на странице
Surf.TransformSel(Left,Bottom,Width,Height)
 ‘ Вывести заголовок карты
Surf.DrawText(Left+Width/2-.5, Bottom-.1, "Plot of " + Title$)
NEXT
 ‘ Включить обратно автоматическое перерисовывание 
 ‘ и перерисовать окно
Surf.ViewAutoRedraw(1)
Surf.ViewRedraw()

Hosted by uCoz